# -*- codeing = utf-8 -*-
# @Time : 2021/2/23 15:06
# @Atuthor: 朱朱
# @File: 070函数的全局和局部变量.py
# @Software: PyCharm
""
"""
在函数外边定义的变量叫做全局变量
全局变量能够在所有的函数中进行访问

当函数内出现局部变量和全局变量相同名字时，
函数内部中的 变量名 = 数据 此时理解为定义了一个局部变量，
而不是修改全局变量的值

如果在函数中出现global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名 = 数据 
也理解为对全局变量进行修改，而不是定义局部变量
如果在一个函数中需要对多个全局变量进行修改，
那么可以一次性全部声明，也可以分开声明
"""
a = 100  # 这个变量是全局变量，在整个py文件里都可以访问
word = '你好'

def test():
    x = 'hello'  # 这个变量是在函数内部定义的变量，它是局部变量，只能在函数内部使用
    print('x = {}'.format(x))

    # 如果局部变量的名和全局变量同名，会在函数内部又定义一个新的局部变量
    # 而不是修改全局变量
    a = 10
    print('函数内部a = {}'.format(a))

    # 函数内部如果想要修改全局变量?
    # 使用global对变量进行声明，可以通过函数修改全局变量的值
    global word
    word = 'ok'
    # 内置函数  globals()可以查看全局变量  locals()可以查看局部变量
    print('locals = {},globals = {}'.format(locals(), globals()))

test()
# 在Python里，只有函数能够分割作用域


